/*
 * @Description: jishupu-admin-template
 * @Author: 技术铺<jishupu@qq.com>
 * @Date: 2021-12-10
 */
import service from '@/utils/axios-service'
// import i18n from '@/lang'

/**
 * 请求类
 * 说明：一些特殊情况，系统不支持put、patch、delete请求方法时，post替换put、patch，get替换delete，需与后端配合处理
 */
class Request {
  constructor() {
    // 仅get、post
    this.only_get_post = 0
  }

  /**
   * get 场景：获取列表、详情信息
   *
   * @param {String} url 请求地址
   * @param {Object} params 参数
   * @returns
   */
  get(url, params) {
    return service.get(url, params)
  }

  /**
   * post 场景：添加新数据
   *
   * @param {String} url 请求地址
   * @param {Object} params  参数
   * @param {Object} extendConfig 请求时是否显示加载状态{showLoading:true}
   * @returns new Promise
   */
  post(url, params, extendConfig) {
    return service.post(url, params, extendConfig)
  }

  /**
   * put 场景：修改数据、更新排序
   *
   * @param {String} url
   * @param {Ojbect} params
   * @param {Object} extendConfig
   * @returns new Promise
   */
  put(url, params, extendConfig) {
    return this.only_get_post === 1 ? this.post(url, params, extendConfig) : service.put(url, params, extendConfig)
  }

  /**
   * patch 场景：修改部分数据、更新状态
   *
   * @param {String} url
   * @param {Object} params
   * @param {Object} extendConfig
   * @returns new Promise
   */
  patch(url, params, extendConfig) {
    return this.only_get_post === 1 ? this.post(url, params, extendConfig) : service.patch(url, params, extendConfig)
  }

  /**
   * delete 场景：删除数据
   *
   * @param {String} url
   * @param {Ojbect} extendConfig
   * @returns new Promise
   */
  delete(url, extendConfig) {
    return this.only_get_post === 1 ? this.get(url, extendConfig) : service.delete(url, extendConfig)
  }
}

export default new Request()
